<?php

/*
 *  Auteur: DikkeHein <Clemens Wijnekus>
 */

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Kampjaar extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->model('Kampjaar_model');
        $this->load->model('Gebruiker_model');
        $this->load->helper('html');
    }

    public function index() {
        if ($this->session->userdata('logged_in') == TRUE) {
            $data['kampjaren'] = $this->Kampjaar_model->alle_kampjaren();
            $data['gebruiker'] = $this->session->all_userdata();
            $data['title'] = 'Kamp jaren';
            $this->load->view('partial/header', $data);
            $this->load->view('partial/menu', $data);
            $this->load->view('partial/sidebar', $data);
            $this->load->view('kampjaar/index', $data);
        } else {
            redirect('auth');
        }
    }

    public function detail($id) {
        if ($this->session->userdata('logged_in') == TRUE) {
            $data['kampjaar'] = $this->Kampjaar_model->kampjaar($id);
            $data['staffers'] = $this->Gebruiker_model->gebruikers_kampjaar($id);
            $data['gebruiker'] = $this->session->all_userdata();
            $data['title'] = 'Kamp jaren';
            $this->load->view('partial/header', $data);
            $this->load->view('partial/menu', $data);
            $this->load->view('partial/sidebar', $data);
            $this->load->view('kampjaar/detail', $data);
        } else {
            redirect('auth');
        }
    }

    public function gebruiker_koppelen() {
        if ($this->session->userdata('logged_in') == TRUE) {
            // Load support assets
            $this->load->library('form_validation');
            $this->form_validation->set_error_delimiters('', '<br />');
            // Set validation rules
            $this->form_validation->set_rules('jaar', 'Kampjaar', 'required|min_length[1]|max_length[4]|integer|is_natural');
            if ($this->input->post()) {
                $jaar = $this->input->post('jaar');
                $gebruiker_ids = $this->input->post('gebruiker');
            } else {
                $jaar = $this->uri->segment(3);
            }

            if ($this->form_validation->run() == FALSE) {
                // First load, or problem with form
                $data['gebruikers'] = $this->Gebruiker_model->mogelijke_gebruikers_kampjaar($jaar);
                $data['jaar'] = $jaar;
                $this->load->view('kampjaar/gebruiker_koppelen', $data);
            } else {
                if (!empty($gebruiker_ids)) {
                    $ids['gebruiker_ids'] = implode(",", $gebruiker_ids);
                    foreach ($gebruiker_ids as $id) {
                        $data = array(
                            'kampjaar' => $jaar,
                            'gebruiker_id' => $id
                        );
                        if ($this->Kampjaar_model->koppel($data)) {
                            
                        }
                    }
                    redirect('kampjaar');
                } else {
                    redirect('kampjaar');
                }
            }
        } else {
            redirect('auth');
        }
    }

    public function koppel() {
        if ($this->session->userdata('logged_in') == TRUE) {
            
        } else {
            redirect('auth');
        }
    }

    public function aanmaken() {
        if ($this->session->userdata('logged_in') == TRUE) {
            // Load support assets
            $this->load->library('form_validation');
            $this->form_validation->set_error_delimiters('', '<br />');

            // Set validation rules
            $this->form_validation->set_rules('kampjaar', 'Kampjaar', 'required|min_length[4]|max_length[4]|integer|is_unique[kampjaar.jaar]');
            $this->form_validation->set_rules('locatie', 'Locatie', 'min_length[0]|max_length[125]');
            $this->form_validation->set_rules('start_datum', 'Start Datum', 'required|min_length[10]|max_length[10]|alpha_dash');
            $this->form_validation->set_rules('eind_datum', 'Eind Datum', 'required|min_length[10]|max_length[10]|alpha_dash');

            // Begin validation
            if ($this->form_validation->run() == FALSE) {
                // First load, or problem with form
                $data['kampjaar'] = array(
                    'name' => 'kampjaar',
                    'id' => 'kampjaar',
                    'value' => set_value('kampjaar', ''),
                    'maxlength' => '4',
                    'size' => '35');

                $data['locatie'] = array(
                    'name' => 'locatie',
                    'id' => 'locatie',
                    'value' => set_value('locatie', ''),
                    'maxlength' => '255',
                    'size' => '35');

                $data['start_datum'] = array(
                    'name' => 'start_datum',
                    'id' => 'start_datum',
                    'value' => set_value('start_datum', ''),
                    'maxlength' => '10',
                    'size' => '35');

                $data['eind_datum'] = array(
                    'name' => 'eind_datum',
                    'id' => 'eind_datum',
                    'value' => set_value('eind_datum', ''),
                    'maxlength' => '10',
                    'size' => '35');

                $this->load->view('kampjaar/aanmaken', $data);
            } else {
                // Validation passed, now escape the data
                $data = array(
                    'jaar' => $this->input->post('kampjaar'),
                    'locatie' => $this->input->post('locatie'),
                    'start_datum' => $this->input->post('start_datum'),
                    'eind_datum' => $this->input->post('eind_datum'),
                );
                if ($this->Kampjaar_model->aanmaken($data)) {
                    redirect('kampjaar');
                }
            }
        } else {
            redirect('auth');
        }
    }

    public function verwijderen() {
        if ($this->session->userdata('logged_in') == TRUE) {
            // Load support assets
            $this->load->library('form_validation');
            $this->form_validation->set_error_delimiters('', '<br />');
            // Set validation rules
            $this->form_validation->set_rules('jaar', 'Kampjaar', 'required|min_length[1]|max_length[4]|integer|is_natural');
            if ($this->input->post()) {
                $jaar = $this->input->post('jaar');
            } else {
                $jaar = $this->uri->segment(3);
            }
            if ($this->form_validation->run() == FALSE) {
                // First load, or problem with form
                $data['query'] = $this->Kampjaar_model->kampjaar($jaar);
                $this->load->view('kampjaar/verwijderen', $data);
            } else {
                if ($this->Kampjaar_model->verwijderen($jaar)) {
                    redirect('kampjaar');
                }
            }
        } else {
            redirect('auth');
        }
    }

    public function wijzigen() {
        if ($this->session->userdata('logged_in') == TRUE) {
            // Load support assets
            $this->load->library('form_validation');
            $this->form_validation->set_error_delimiters('', '<br />');

            // Set validation rules
            $this->form_validation->set_rules('jaar', 'Jaar', 'required|min_length[4]|max_length[4]|integer');
            $this->form_validation->set_rules('locatie', 'Locatie', 'min_length[0]|max_length[125]');
            $this->form_validation->set_rules('start_datum', 'Start Datum', 'required|min_length[10]|max_length[10]|alpha_dash');
            $this->form_validation->set_rules('eind_datum', 'Eind Datum', 'required|min_length[10]|max_length[10]|alpha_dash');

            if ($this->input->post()) {
                $jaar = $this->input->post('jaar');
            } else {
                $jaar = $this->uri->segment(3);
            }
            
            if($jaar == "")
            {
                $query = $this->Kampjaar_model->huidig_kampjaar();
                $jaar = $query['jaar'];
            }
            
            // Begin validation
            if ($this->form_validation->run() == FALSE) {
                // First load, or problem with form
                $query = $this->Kampjaar_model->kampjaar($jaar);

                $jaar = $query['jaar'];
                $locatie = $query['locatie'];
                $start_datum = $query['start_datum'];
                $eind_datum = $query['eind_datum'];


                // First load, or problem with form
                $data['kampjaar'] = $jaar;

                $data['locatie'] = array(
                    'name' => 'locatie',
                    'id' => 'locatie',
                    'value' => set_value('locatie', $locatie),
                    'maxlength' => '255',
                    'size' => '35');

                $data['start_datum'] = array(
                    'name' => 'start_datum',
                    'id' => 'start_datum',
                    'value' => set_value('start_datum', $start_datum),
                    'maxlength' => '10',
                    'size' => '35');

                $data['eind_datum'] = array(
                    'name' => 'eind_datum',
                    'id' => 'eind_datum',
                    'value' => set_value('eind_datum', $eind_datum),
                    'maxlength' => '10',
                    'size' => '35');

                $data['jaar'] = array(
                    'jaar' => set_value('jaar', $jaar)
                );

                $this->load->view('kampjaar/wijzigen', $data);
            } else {
                // Validation passed, now escape the data
                $data = array(
                    'jaar' => $this->input->post('jaar'),
                    'locatie' => $this->input->post('locatie'),
                    'start_datum' => $this->input->post('start_datum'),
                    'eind_datum' => $this->input->post('eind_datum'),
                );
                if ($this->Kampjaar_model->wijzigen($jaar, $data)) {
                    redirect('kampjaar');
                }
            }
        } else {
            redirect('auth');
        }
    }
    
    public function openen($jaar) {
        if($this->Kampjaar_model->openKampjaar($jaar)){
            redirect('kampjaar/detail/'.$jaar);
        } else {
            redirect('kampjaar/detail/'.$jaar);
        }
    }
    
    public function sluiten($jaar) {
        if($this->Kampjaar_model->sluitKampjaar($jaar)){
            redirect('kampjaar/detail/'.$jaar);
        } else {
            redirect('kampjaar/detail/'.$jaar);
        }
    }

}

